"""
排序算法：冒泡排序，选择排序，快速排序，计数器排序等

"""
#冒泡排序
li = [1,4,3,7,6,5]
for i in range(len(li) - 1):
    for j in range(len(li) - i - 1):
        if li[j] > li[j + 1]:
            li[j], li[j + 1] = li[j + 1], li[j]
print(li)


#对列表进行排序
li1 = [1,4,3,7,6,5]
li2 = sorted(li1)
print(li2)

#按绝对值大小排序
li3 = [1,4,3,7, -5, -3, 6,5]
#key接受函数来实现自定义的排序
li4 = sorted(li3, key=abs)
print(li4)

#降序排序
li5 = [1,4,3,7, -5, -3, 6,5]
li6 = sorted(li5, reverse=True)
print(li6)

#字符串大小问题
#原理：获取两个字符串的第一个字符进行比较，谁的ASXCII值大，谁就是大的
#如果相同比较下一个字符的大小
print("abcd" > "abc")
li7 = ["abc", "awgdsf", "addd", "ger"]
print(sorted(li7))

#自定义排序逻辑
def func(x):
    return len(x)
li8 = sorted(li7, key=func)
print(li8)
